diff --git a/system/helpers/security_helper.php b/system/helpers/security_helper.php
index 0dc1429..8391c2d 100644
--- a/system/helpers/security_helper.php
+++ b/system/helpers/security_helper.php
@@ -1,4 +1,4 @@
-<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');
+<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 /**
  * CodeIgniter
  *
@@ -35,7 +35,7 @@
  * @param	string	the character set of your data
  * @return	string
  */	
-if (! function_exists('xss_clean'))
+if ( ! function_exists('xss_clean'))
 {
 	function xss_clean($str, $charset = 'ISO-8859-1')
 	{
@@ -53,15 +53,15 @@
  * @param	string
  * @return	string
  */	
-if (! function_exists('dohash'))
+if ( ! function_exists('dohash'))
 {	
 	function dohash($str, $type = 'sha1')
 	{
 		if ($type == 'sha1')
 		{
-			if (! function_exists('sha1'))
+			if ( ! function_exists('sha1'))
 			{
-				if (! function_exists('mhash'))
+				if ( ! function_exists('mhash'))
 				{	
 					require_once(BASEPATH.'libraries/Sha1'.EXT);
 					$SH = new CI_SHA;
@@ -93,7 +93,7 @@
  * @param	string
  * @return	string
  */	
-if (! function_exists('strip_image_tags'))
+if ( ! function_exists('strip_image_tags'))
 {
 	function strip_image_tags($str)
 	{
@@ -113,7 +113,7 @@
  * @param	string
  * @return	string
  */	
-if (! function_exists('encode_php_tags'))
+if ( ! function_exists('encode_php_tags'))
 {
 	function encode_php_tags($str)
 	{
@@ -121,6 +121,6 @@
 	}
 }
 
-
-/* End of file security_helper.php */
+
+/* End of file security_helper.php */
 /* Location: ./system/helpers/security_helper.php */
\ No newline at end of file
